Kristian Rietveld [Sun, 10 Jul 2011 19:56:43 +0000 (21:56 +0200)]
Add reference counting unit tests for GtkTreeModelFilter
Kristian Rietveld [Sun, 10 Jul 2011 19:53:25 +0000 (21:53 +0200)]
Add more "has child" unit tests
This allows for more thorough testing of "has child" filter functions.
We also test a has child filter function with a sort model as
child model, to verify that we receive enough signals to function
properly.
Kristian Rietveld [Sun, 10 Jul 2011 19:48:23 +0000 (21:48 +0200)]
Add cleaned up and easier version of unit test for bug 311955
Kristian Rietveld [Sun, 10 Jul 2011 19:46:02 +0000 (21:46 +0200)]
Check level length in unit test for bug 311955
Kristian Rietveld [Sun, 10 Jul 2011 19:44:06 +0000 (21:44 +0200)]
Remove checks for superfluous signals which are not longer emitted
Kristian Rietveld [Sun, 10 Jul 2011 19:34:38 +0000 (21:34 +0200)]
Correct/expand base tests to check emitted signals
The filter model is now more strict about the signals which are emitted,
so the base tests have been expanded to test with both the root level
nodes collapsed and expanded.
Kristian Rietveld [Sun, 10 Jul 2011 15:37:05 +0000 (17:37 +0200)]
treemodelrefcount: check_iter(): check if iter is valid
Kristian Rietveld [Sun, 10 Jul 2011 15:35:49 +0000 (17:35 +0200)]
treemodelrefcount: make it possible to assert within check functions
Kristian Rietveld [Sun, 10 Jul 2011 14:35:38 +0000 (16:35 +0200)]
treemodelfilter: rework reference counting
- Before we kept a reference on all nodes in non-root levels. This has
been changed, now we keep a reference on the first node of each level.
If, due to changes in the model, another node becomes the first node in
the level, the reference is transferred to this new first node.
- All non-root levels keep a reference on their parent.
- By making use of the external ref count, the filter model now emits less
unnecessary signals.
- GtkTreeModelFilter does support filter functions which decide visibility
of a given node based on the number of or visibility of children.
To accomplish this, a child level of a node is cached when its
parent has an external ref count > 0, because changes to the node might
affect this parent.
- An optimization for not building the root level in case the inserted
node is not visible in gtk_tree_model_filter_row_inserted() has been
removed. In this case, we still need to build the root level and
possibly a child level to monitor for signals which might make
this row visible.
Kristian Rietveld [Sun, 10 Jul 2011 14:24:05 +0000 (16:24 +0200)]
treemodelfilter: handle another case in check_ancestors
In gtk_tree_model_filter_check_ancestors(), also handle the case when
a node is already in the cache, but invisible, in the root level.
With the upcoming changes to GtkTreeModelFilter's ref counting this
case can occur.
Kristian Rietveld [Sun, 10 Jul 2011 14:21:08 +0000 (16:21 +0200)]
treemodelfilter: guard for building already existing levels
Kristian Rietveld [Sun, 26 Jun 2011 20:04:05 +0000 (22:04 +0200)]
treemodelfilter: Introduce notion of external ref count
We need to distinguish between the ref count objects have on us versus
the ref count we have on our child model. To keep track of the former,
we introduce the "external ref count" in this commit. The zero_ref_count
needs to be determined from the external ref count, because objects that
have a ref count on us have say in which levels must be cached and which
can be released.
Before the caching in GtkTreeModelFilter was essentially broken and
levels were never released. This was caused because the zero_ref_count
was connected to the ref count the filter model had on its child model.
Now that this depends on the external ref count, this is working fine and
as to be expected.
Kristian Rietveld [Sun, 26 Jun 2011 19:44:13 +0000 (21:44 +0200)]
treemodelfilter: Move more missions of row-deleted down
The row-deleted signal should be emitted after the internal data
structures have been updated. In gtk_tree_model_filter_remove_elt_from_level
and gtk_tree_model_filter_virtual_root_deleted the signal was still being
emitted before the updates were carried out.
Kristian Rietveld [Thu, 2 Jun 2011 20:03:44 +0000 (22:03 +0200)]
Unit test reference counting in GtkTreeModelSort
Kristian Rietveld [Thu, 2 Jun 2011 20:01:45 +0000 (22:01 +0200)]
Avoid unreferencing deleted nodes
Now that we call unref_node in free_level, we have to take care that
free_level may only unref (parent) nodes when these still exist in the
child model. After row-deleted has been received for a node, its
children may no longer unref this node.
Kristian Rietveld [Thu, 2 Jun 2011 19:51:51 +0000 (21:51 +0200)]
Bug 611922 - gtk_tree_model_sort_ref_node() is too slow
Referencing a parent node for each referenced node is overdone. Instead,
we now reference the parent from build_level and unreference in free_level.
Each level keeps a single reference on its immediate parent. This both
alleviates the performence problems and should perfectly serve the purpose.
Kristian Rietveld [Thu, 2 Jun 2011 14:20:08 +0000 (16:20 +0200)]
Move asserts to gtktreemodelrefcount.h for other unit tests to use
Kristian Rietveld [Sat, 28 May 2011 14:48:15 +0000 (16:48 +0200)]
Add generic GtkTreeModel reference counting unit tests
Kristian Rietveld [Sat, 28 May 2011 14:41:49 +0000 (16:41 +0200)]
Add GtkTreeModelRefCount, only to be used in unit tests
Kristian Rietveld [Tue, 24 May 2011 20:19:38 +0000 (22:19 +0200)]
treemodelsort: Remove unnecessary comment
(I am no longer 17 years old and have grown up by now).
Kristian Rietveld [Sun, 22 May 2011 16:40:21 +0000 (18:40 +0200)]
Add some comments to gtk_tree_model_filter_remove_elt_from_level
Kristian Rietveld [Sun, 22 May 2011 16:26:37 +0000 (18:26 +0200)]
Fix a couple of memleaks in the filter model tests
(Not all of them yet, need to do the remainder on Linux since valgrind
on Mac OS X is a bit too noisy).
Kristian Rietveld [Sat, 21 May 2011 09:45:08 +0000 (11:45 +0200)]
Bug 621076 - GtkTreeModelFilter does not emit all signals in some ...
The bulk of the fix is to walk the chain of ancestors, starting at the
root level, and check if the visibility of any of the ancestors has
changed. If yes, the necessary signals are emitted so that this change
is propagated properly. This walk is done after a node has been
inserted, changed or deleted, see function
gtk_tree_model_filter_check_ancestors().
Bug reported, and initial debugging and analysis, by Xavier Claessens.
Kristian Rietveld [Fri, 20 May 2011 18:43:48 +0000 (20:43 +0200)]
Decrease code duplication in _remove_elt_from_level take two
Kristian Rietveld [Fri, 20 May 2011 18:41:50 +0000 (20:41 +0200)]
Decrease amount of code duplication in _remove_elt_from_level
Kristian Rietveld [Fri, 20 May 2011 18:39:12 +0000 (20:39 +0200)]
Rename gtk_tree_model_filter_remove_node for internal consistency
Kristian Rietveld [Fri, 20 May 2011 18:33:30 +0000 (20:33 +0200)]
Change signature of gtk_tree_model_filter_remove_node
Xavier Claessens [Fri, 20 May 2011 18:25:24 +0000 (20:25 +0200)]
Add thorough unit test for bug #621076
Minor edits and additions by Kristian Rietveld.
Kristian Rietveld [Fri, 20 May 2011 18:21:11 +0000 (20:21 +0200)]
Corrections to has-child filter tests
Kristian Rietveld [Fri, 20 May 2011 07:11:49 +0000 (09:11 +0200)]
Improve specific_has_child_filter() test to also verify signals
Kristian Rietveld [Fri, 20 May 2011 06:49:58 +0000 (08:49 +0200)]
Improve specific_root_has_child_filter test to also verify signals
Kristian Rietveld [Sat, 14 May 2011 12:50:07 +0000 (14:50 +0200)]
Have a separate category for tests of gtk_tree_model_filter_row_deleted
Kristian Rietveld [Sat, 14 May 2011 12:47:39 +0000 (14:47 +0200)]
Add two unit tests for gtk_tree_model_filter_row_inserted
Kristian Rietveld [Sat, 14 May 2011 12:45:54 +0000 (14:45 +0200)]
Use g_assert_cmpint instead of g_assert in check_level_length()
Kristian Rietveld [Sat, 14 May 2011 12:42:31 +0000 (14:42 +0200)]
Refactor emitting row-inserted for new nodes to a common code path
Suggested by Xavier Claessens / bug 621076.
Kristian Rietveld [Sat, 14 May 2011 12:10:27 +0000 (14:10 +0200)]
Fix comment
Kristian Rietveld [Sat, 14 May 2011 12:09:51 +0000 (14:09 +0200)]
Factor out find_elt_with_offset
Suggested by Xavier Claessens / bug 621076.
Kristian Rietveld [Sat, 14 May 2011 09:47:01 +0000 (11:47 +0200)]
Refactor to a common code path for inserts of nodes in levels
Suggested by Xavier Claessens / bug 621076.
(Additional obseration: this should speed up the filter model's
handling of row-inserted as a binary search is now used instead
of a linear scan).
Xavier Claessens [Wed, 11 May 2011 20:07:01 +0000 (22:07 +0200)]
Improve error messages of signal monitor
Kristian Rietveld [Mon, 9 May 2011 20:22:24 +0000 (22:22 +0200)]
Factor out another part of gtk_tree_model_filter_row_deleted
Kristian Rietveld [Mon, 9 May 2011 08:36:22 +0000 (10:36 +0200)]
Three more TreeModelFilter remove ancestor tests
Kristian Rietveld [Mon, 9 May 2011 08:29:54 +0000 (10:29 +0200)]
In sort model also emit row-deleted after updating the data structures
Kristian Rietveld [Mon, 9 May 2011 08:29:37 +0000 (10:29 +0200)]
Correct GtkTreeModelFilter to never unref an already deleted child node
Kristian Rietveld [Mon, 9 May 2011 08:19:39 +0000 (10:19 +0200)]
Improve filter model remove node unit tests
Kristian Rietveld [Mon, 9 May 2011 08:04:24 +0000 (10:04 +0200)]
Print failed assertions for failed child iterator conversions
Kristian Rietveld [Mon, 9 May 2011 07:51:50 +0000 (09:51 +0200)]
Make _get_iter invalidate iterators when FALSE is returned
Kristian Rietveld [Mon, 9 May 2011 07:47:20 +0000 (09:47 +0200)]
Add more unit tests for gtk_tree_model_filter_row_deleted()
Kristian Rietveld [Mon, 9 May 2011 07:06:25 +0000 (09:06 +0200)]
Further reduce variable shadowing by factoring code out into functions
Kristian Rietveld [Mon, 9 May 2011 06:50:45 +0000 (08:50 +0200)]
Add unit test for bug 77977 for reference
Kristian Rietveld [Mon, 9 May 2011 06:41:29 +0000 (08:41 +0200)]
Add bug base and bug numbers to tree model unit tests
Kristian Rietveld [Mon, 9 May 2011 06:37:07 +0000 (08:37 +0200)]
Move TreeModelSort specific tests to a new sortmodel.c file
Kristian Rietveld [Mon, 9 May 2011 06:32:11 +0000 (08:32 +0200)]
Make naming of tree model unit tests consistent
All test paths now start with the name of the class which is being
tested.
Kristian Rietveld [Mon, 9 May 2011 06:25:27 +0000 (08:25 +0200)]
Put all GtkTreeModel unit tests in a single binary
This to reduce linking time and have all tests in a single binary.
Cosimo Cecchi [Mon, 22 Aug 2011 15:40:41 +0000 (11:40 -0400)]
widget-factory: add the primary-toolbar hint to the toolbar
Chun-wei Fan [Fri, 19 Aug 2011 06:33:20 +0000 (14:33 +0800)]
Update config.h.win32.in
-Only define HAVE_STRINGS_H when MSVC is not used
-Define HVE_STDINT_H for Visual C++ 2010 and later, as Visual C++ 2010
does ship with a "proper" stdint.h by default
-Add check macros HAVE_RINT and HAVE_ROUND--they are only defined when
MSVC is not used
-Remove obsolete check macros
Chun-wei Fan [Fri, 19 Aug 2011 07:38:47 +0000 (15:38 +0800)]
Update configure.ac to check for rint()/round()
Added check in configure.ac to check for the rint() and
round() functions as they are normally only available in C99
compilers.
Chun-wei Fan [Fri, 19 Aug 2011 06:26:52 +0000 (14:26 +0800)]
Include C89 fallback code
gtk/gtkborderimage.c, gtk/gtklabel.c and gtk/gtkstyleproperty.c call
round() and/or rint(), which was only available in C99 compilers.
This adds the inclusion of the fallback implementation (gtk/fallback-c89.c)
to define these functions if they are not initially made available by the
compiler.
Also remove the rint() implementation in gtk/gtklabel.c as it is now in
the fallback implmentation.
Chun-wei Fan [Fri, 19 Aug 2011 07:56:32 +0000 (15:56 +0800)]
Add fallback implemetation for rint()/round()
Add an implementation for rint() and round() for compilers that do not
define one or both of them. Note that this file should be included
after config.h was included.
Arash Mousavi [Fri, 19 Aug 2011 20:29:30 +0000 (00:59 +0430)]
Updated Persian translation
David Zeuthen [Thu, 18 Aug 2011 21:07:13 +0000 (17:07 -0400)]
Bug 656851 – Allow use of GVariant in GtkListStore
Signed-off-by: David Zeuthen <davidz@redhat.com>
Abduxukur Abdurixit [Fri, 19 Aug 2011 17:57:26 +0000 (19:57 +0200)]
Added UG translation
Andika Triwidada [Thu, 18 Aug 2011 09:29:40 +0000 (16:29 +0700)]
Updated Indonesian translation
Daniel Mustieles [Tue, 16 Aug 2011 23:39:00 +0000 (01:39 +0200)]
Updated Spanish translation
Matthias Clasen [Tue, 16 Aug 2011 14:42:54 +0000 (10:42 -0400)]
Use GtkFontChooser in testtoplevelembed
This was pointed out in bug 656639.
Fran Dieguez [Tue, 16 Aug 2011 11:31:28 +0000 (13:31 +0200)]
Updated Galician translations
Chun-wei Fan [Tue, 16 Aug 2011 06:38:03 +0000 (14:38 +0800)]
Update VS property sheets
Copy the Win32-specific GDK backend headers during the "install" stage
as well, as they were missed in the install, causing trouble when
building other projects like WebKitGTK+.
Thanks to greg.hellings for pointing this out in Bug 653964.
Matthias Clasen [Tue, 16 Aug 2011 02:01:55 +0000 (22:01 -0400)]
Post-release bump
Matthias Clasen [Tue, 16 Aug 2011 01:57:10 +0000 (21:57 -0400)]
3.1.12
A S Alam [Tue, 16 Aug 2011 01:28:45 +0000 (06:58 +0530)]
update translation for Punjabi
Matthias Clasen [Tue, 16 Aug 2011 01:25:58 +0000 (21:25 -0400)]
Fix up symbol lists for recent api additions
Matthias Clasen [Tue, 16 Aug 2011 00:49:53 +0000 (20:49 -0400)]
Update NEWS for 3.1.12
Matthias Clasen [Mon, 15 Aug 2011 23:40:24 +0000 (19:40 -0400)]
testgtk: remove dead code
Matthias Clasen [Mon, 15 Aug 2011 23:24:59 +0000 (19:24 -0400)]
Fix a typo
Matthias Clasen [Mon, 15 Aug 2011 03:46:14 +0000 (23:46 -0400)]
Make setting fontname work, independent of a screen
Matthias Clasen [Mon, 15 Aug 2011 03:16:45 +0000 (23:16 -0400)]
Keep the currently selected font over theme changes
When repopulating the list of fonts, don't loose the current
selection, unless the font is no longer in the list.
Matthias Clasen [Mon, 15 Aug 2011 02:51:39 +0000 (22:51 -0400)]
Deprecate GtkFontSelection and GtkFontSelectionDialog
Matthias Clasen [Mon, 15 Aug 2011 02:50:44 +0000 (22:50 -0400)]
Trivial formatting fix
Matthias Clasen [Mon, 15 Aug 2011 02:33:23 +0000 (22:33 -0400)]
Add docs
Matthias Clasen [Mon, 15 Aug 2011 02:33:10 +0000 (22:33 -0400)]
Add new symbols
Matthias Clasen [Mon, 15 Aug 2011 02:20:00 +0000 (22:20 -0400)]
Add filtering to the font chooser
Matthias Clasen [Thu, 11 Aug 2011 09:23:21 +0000 (11:23 +0200)]
Add 'no matches' functionality
Initial cut at showing a 'no matches' message if the font list
is empty.
Matthias Clasen [Tue, 9 Aug 2011 14:13:58 +0000 (16:13 +0200)]
Make the fontchooser dialog come up in a reasonable size
This is not a perfect solution; we really just want to set
a nice default size, but GTK+ does not make that easy.
Matthias Clasen [Tue, 9 Aug 2011 07:24:39 +0000 (09:24 +0200)]
Just use a single grid
The subgrid didn't really add anything.
Matthias Clasen [Tue, 9 Aug 2011 00:11:38 +0000 (02:11 +0200)]
Clean up error handling
Matthias Clasen [Tue, 9 Aug 2011 00:07:47 +0000 (02:07 +0200)]
Rename some statics
gtk_font_chooser_ref_{family,face} -> gtk_font_chooser_set_{family,face}
Matthias Clasen [Tue, 9 Aug 2011 00:04:22 +0000 (02:04 +0200)]
Avoid extraneous signals at destroy time
We need to disconnect the cursor-changed handler before the
treeview gets destroyed, to avoid unwanted emissions.
Matthias Clasen [Tue, 9 Aug 2011 00:02:55 +0000 (02:02 +0200)]
Fix minor issues in the tests
Matthias Clasen [Mon, 8 Aug 2011 23:10:39 +0000 (01:10 +0200)]
Simplify a few things
Adwaita seems to misrender focus on entries with margins, so
use spacing instead. Also, don't use entry buffer unnecessarily.
Matthias Clasen [Mon, 8 Aug 2011 22:10:00 +0000 (00:10 +0200)]
Trivial formatting fixes
Just committing these is easier than writing them up.
Alberto Ruiz [Wed, 27 Jul 2011 23:22:22 +0000 (00:22 +0100)]
GtkFontChooserDialog: GtkFontButton now uses GtkFontChooserDialog instead of GtkFontSelectionDialog
Alberto Ruiz [Wed, 27 Jul 2011 23:21:40 +0000 (00:21 +0100)]
GtkFontChooser: get_font_name did not return the font size
Alberto Ruiz [Wed, 27 Jul 2011 22:24:15 +0000 (23:24 +0100)]
GtkFontChooser: Stub code to handle empty list by search.
Alberto Ruiz [Wed, 27 Jul 2011 13:11:43 +0000 (14:11 +0100)]
GtkFontChooser: font-name property notification wasn't properly propagated during size change from the spinbutton
Alberto Ruiz [Wed, 27 Jul 2011 12:04:21 +0000 (13:04 +0100)]
GtkFontChooser: Missing G_END_DECLS in fontchooser header
Alberto Ruiz [Mon, 25 Jul 2011 17:37:13 +0000 (18:37 +0100)]
GtkFontChooser: Using G_N_ELEMENTS instead of a define
Alberto Ruiz [Mon, 25 Jul 2011 17:16:55 +0000 (18:16 +0100)]
GtkFontChooser: Using the widget instead of the private struct as signal data in all conects
Alberto Ruiz [Mon, 25 Jul 2011 16:46:50 +0000 (17:46 +0100)]
GtkFontChooser: Fixed coding style wrt spacing around operators
Alberto Ruiz [Mon, 25 Jul 2011 16:41:59 +0000 (17:41 +0100)]
GtkFontChooser: Using explicit comparisons for g_strcmp0
Alberto Ruiz [Mon, 25 Jul 2011 16:38:54 +0000 (17:38 +0100)]
GtkFontChooser: Added missing breaks in switch statements
Alberto Ruiz [Mon, 25 Jul 2011 16:35:36 +0000 (17:35 +0100)]
GtkFontChooser: Setting all ought to be static functions as static